package magchess10.rn.controle;

import javax.swing.JLabel;
import javax.swing.SwingWorker;

public class ControleTempo extends SwingWorker <String,String>{
private JLabel labelRelogio;
private ControleJogo controleJogo;
private Integer numeroJogador;
	
	public ControleTempo(JLabel labelRelogio,ControleJogo controleJogo, int numeroJogador) {
		this.labelRelogio = labelRelogio;
		this.controleJogo = controleJogo;
		this.numeroJogador = numeroJogador;
	}
	
	@Override
	protected String doInBackground() throws Exception {
		  int sleepTime = 1000;
		  String tempoTela="";
	      while (!isCancelled())
	      {
	        Thread.sleep(sleepTime);
	        tempoTela = getTempoAtualDecrementado(numeroJogador);
	        publish(tempoTela);
	        labelRelogio.setText(tempoTela);
	      }
	    return tempoTela;  
	}
	
	
	
	
	private String getTempoAtualDecrementado(int numeroJogador) {
		return getMinutosDecrementados(numeroJogador) + ":"
				+ getSegundosDecrementados(numeroJogador);
	}

	private String getMinutosDecrementados(int p_numeroJogador) {
		return String
				.valueOf(((int) (getTempoJogadorAlvo(p_numeroJogador)) / 60));
	}

	private String getSegundosDecrementados(int numeroJogador) {
		float tempo = decrementaTempoJogadorAlvo(numeroJogador) % 60;

		String s = tempo < 10 ? "0" : "";
		return String.valueOf(s + (int) tempo);
	}

	private float getTempoJogadorAlvo(int p_numeroJogador) {
		return getControleJogo().getTempoJogadores(p_numeroJogador);
	}

	private float decrementaTempoJogadorAlvo(int numeroJogador) {
		return getControleJogo().decrementaTempoJogador(numeroJogador);

	}

	public ControleJogo getControleJogo() {
		return controleJogo;
	}

	public void setControleJogo(ControleJogo controleJogo) {
		this.controleJogo = controleJogo;
	}

	

	
}
